package one.stand.service;

import one.stand.model.LiveRoom;

import java.util.List;

public interface LiveService {

    /**
     * 类型: 0直播 1短视频
     */
    int VIDEO_TYPE_LIVE = 0;
    int VIDEO_TYPE_VIDEO = 1;

    /**
     * 直播状态: 0未开播 1开播 2结束
     */
    int LIVE_STATUS_NO = 0;
    int LIVE_STATUS_ON = 1;
    int LIVE_STATUS_OFF = 2;

    /**
     * 商品状态: 0下架 1上架
     */
    int GOODS_DOWN = 0;
    int GOODS_UP = 1;

    void save(Integer cardId, LiveRoom liveRoom, List<Integer> goodsIds);

    /**
     * 短视频：保存
     */
    void saveVideo(Integer cardId, String fileId, String name, String coverUrl, String videoUrl, Integer videoDuration);

    /**
     * 短视频：可靠回调保存
     */
    void saveVideoAsync();

    /**
     * 删除直播、短视频
     */
    void remove(Integer roomId);

    void goodsAdd(Integer cardId, List<Integer> goodsIds);

    void goodsUpdate(Integer roomGoodsId, Integer status);

    /**
     * 回调更新
     */
    void updateBack(Integer roomId, String fileId, String replayUrl, String screenshotUrl, Integer viewerNum, String viewerPhotos);

    /**
     * 直播：开播
     */
    LiveRoom open(Integer roomId);

    /**
     * 短视频：发布
     */
    void upVideo(Integer id, String title);

    /**
     * 退出直播
     */
    void quit(Integer roomId);

    /**
     * 推流、断流通知
     */
    void end(Integer roomId, boolean end);

}
